This is Kara’s first pass at looking at the Sleep data (with data from 2019-01-24).
Demographics
A couple of things to note here: A substantial majority of participants in Ghana were female, and this also appears to be true in Thailand and Vanuatu (where an unusual number of participants are missing gender/sex info).
Individual questions
1. Where do you usually sleep at night? (slep_ordn01)

2. What do you usually sleep on at night? (slep_ordn02)

3. Does anyone else sleep in the same bed (or mat, hammock, etc.) with you? (slep_ordn03)

4. If yes, who sleeps with you in the bed? Please circle the person(s) from the list (slep_ordn04)

5. Besides anyone who shares the bed with you, does someone else sleep in the same room with you? (slep_ordn05)

6. If yes, who else sleeps in the same room with you? Please circle the person(s) from the list (slep_ordn06)

7. What does your family use to see at night? (slep_ordn07)

8. Do you usually take naps? (slep_ordn08)

9. If so, how often do you rest or nap? (slep_ordn09)


10. When do you typically fall asleep every night and wake up every night? (slep_ordn10)



11. Does that vary a lot from night to night? (slep_ordn11)


12a. RA judgment for hours slept (slep_ordn12a, derived from slep_ordn12)

LS0tCnRpdGxlOiAiU2xlZXAgKEtXIGZpcnN0IHBhc3MpIgpzdWJ0aXRsZTogIkxhc3QgdXBkYXRlZDogMjAxOS0wMS0yNSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiA0CiAgICB0b2NfZmxvYXQ6IHllcwphbHdheXNfYWxsb3dfaHRtbDogeWVzCi0tLQoKVGhpcyBpcyBLYXJhJ3MgZmlyc3QgcGFzcyBhdCBsb29raW5nIGF0IHRoZSBTbGVlcCBkYXRhICh3aXRoIGRhdGEgZnJvbSAyMDE5LTAxLTI0KS4KCmBgYHtyIGdsb2JhbF9vcHRpb25zLCBpbmNsdWRlID0gRn0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjY3LAogICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSA9IEYsIGVjaG8gPSBGKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsYW5nY29nKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KHJlYWR4bCkKbGlicmFyeShjb3dwbG90KQpsaWJyYXJ5KGxtZTQpCmxpYnJhcnkobG1lclRlc3QpCmxpYnJhcnkoa2FibGVFeHRyYSkKbGlicmFyeShsdWJyaWRhdGUpCgp0aGVtZV9zZXQodGhlbWVfYncoKSkKYGBgCgpgYGB7cn0KZF9yYXcgPC0gcmVhZF9jc3YoIi4uL0NPTVBMRVRFX3VzZSBmb3IgYW5hbHlzaXNfU2xlZXBfSmFuLjI0LjIwMTkuY3N2IikKYGBgCgpgYGB7cn0KZDAgPC0gZF9yYXcgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc2xlcF9vcmRuMTEsIHNsZXBfb3JkbjEyYSwgc2xlcF9vcmRuMTlhLCBzbGVwX2VkZ2VfdG90YWwsIAogICAgICAgICAgICAgICAgIHNsZXBfZGVtb19hZ2UsIHNsZXBfZGVtb19zZXMsIHNsZXBfZGVtb19ob3dyKSwgCiAgICAgICAgICAgIGZ1bnMoYXMubnVtZXJpYykpICU+JQogIG11dGF0ZV9hdCh2YXJzKHNsZXBfb3JkbjAzLCBzbGVwX29yZG4wNSwgc2xlcF9vcmRuMDgsIHNsZXBfb3JkbjE2KSwKICAgICAgICAgICAgZnVucyhyZWNvZGVfZmFjdG9yKC4sICIwIiA9ICJubyIsICIxIiA9ICJ5ZXMiKSkpICU+JQogIG11dGF0ZV9hdCh2YXJzKHNsZXBfb3JkbjA0LCBzbGVwX29yZG4wNiksCiAgICAgICAgICAgIGZ1bnMocmVjb2RlX2ZhY3RvciguLCAiMCIgPSAibm9ib2R5IiwgIjEiID0gInNwb3VzZSIsICIyIiA9ICJzaXN0ZXIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzIiA9ICJicm90aGVyIiwgIjQiID0gImRhdWdodGVyIiwgIjUiID0gInNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNiIgPSAibW90aGVyIiwgIjciID0gImZhdGhlciIsICI4IiA9ICJncmFuZHBhcmVudCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjkiID0gImdyYW5kY2hpbGQiLCAiMTAiID0gIm90aGVyIHJlbGF0aXZlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTEiID0gIm5vbi1yZWxhdGl2ZSIpKSkgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc2xlcF9vcmRuMTFfd29ybGRvZnNwaXJpdHMsIHNsZXBfb3JkbjEzX2RlZXBzZWxmLAogICAgICAgICAgICAgICAgIHNsZXBfb3JkbjEzX21pbmRvZmYsIHNsZXBfb3JkbjEzX3JlcGxlbmlzaCwKICAgICAgICAgICAgICAgICBzbGVwX29yZG4yM19QaHlzaW9sb2dpY2FsLCBzbGVwX29yZG4yM19Qc3ljaG9sb2dpY2FsLAogICAgICAgICAgICAgICAgIHNsZXBfb3JkbjIzX0RyZWFtcywgc2xlcF9vcmRuMjNfU291bmQsCiAgICAgICAgICAgICAgICAgc2xlcF9vcmRuMjNfc3VwZXJuYXR1cmFscHJheWVyKSwKICAgICAgICAgICAgZnVucyhmYWN0b3IoaWZlbHNlKC4gPT0gIjEiIHx8IGlzLm5hKC4pLCAieWVzIiwgIm5vIiksCiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIm5vIiwgInllcyIpKSkpICU+JQogIG11dGF0ZV9hdCh2YXJzKHNsZXBfb3JkbjE1LCBzbGVwX29yZG4xNywgc2xlcF9vcmRuMTgsIHNsZXBfb3JkbjIwOnNsZXBfb3JkbjIyKSwKICAgICAgICAgICAgZnVucyhyZWNvZGVfZmFjdG9yKC4sICIwIiA9ICJuZXZlciIsICIxIiA9ICJyYXJlbHkiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyIiA9ICJzb21ldGltZXMiLCAiMyIgPSAib2Z0ZW4iKSkpICU+JQogIG11dGF0ZV9hdCh2YXJzKHN0YXJ0c193aXRoKCJzbGVwX2VkZ2UiKSksCiAgICAgICAgICAgIGZ1bnMocmVjb2RlX2ZhY3RvciguLCAiMCIgPSAibmV2ZXIiLCAiMSIgPSAicmFyZWx5IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgPSAib2NjYXNpb25hbGx5IiwgIjMiID0gImZyZXF1ZW50bHkiKSkpICU+JQogIG11dGF0ZShzbGVwX29yZG4wMSA9IHJlY29kZV9mYWN0b3Ioc2xlcF9vcmRuMDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiID0gIm93biBiZWRyb29tIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgPSAiYmVkcm9vbSBzaGFyZWQgd2l0aCBvdGhlcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMiID0gImNvbW1vbiByb29tIChsaXZpbmcgcGx1cyBzbGVlcGluZykiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQiID0gInBvcmNoL291dHNpZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUiID0gIm5vdCBpbiBob21lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI2IiA9ICJ2YXJpYWJsZSIpLAogICAgICAgICBzbGVwX29yZG4wMiA9IHJlY29kZV9mYWN0b3Ioc2xlcF9vcmRuMDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMSIgPSAiYmVkIiwgIjIiID0gInNvZmEsIGRpdmFuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMyIgPSAibWF0LCBncm91bmQiLCAiNCIgPSAiaGFtbW9jayIpLAogICAgICAgICBzbGVwX29yZG4wNyA9IHJlY29kZV9mYWN0b3Ioc2xlcF9vcmRuMDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgPSAibm90aGluZywganVzdCB0aGUgbW9vbiBhbmQgc3RhcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiID0gImxpZ2h0IGZyb20gdGhlIGNvb2tpbmcgZmlyZSBvciBoZWFydGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiID0gImNhbmRsZXMgb3Igc3RyYXcgdG9yY2hlcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMiID0gIm9pbCBvciBrZXJvc2VuZSBsYW1wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0IiA9ICJiYXR0ZXJ5LWRyaXZlbiBsYW1wIG9yIGZsYXNobGlnaHQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1IiA9ICJlbGVjdHJpYyBsaWdodCIpLAogICAgICAgICBzbGVwX29yZG4wOSA9IHJlY29kZV9mYWN0b3Ioc2xlcF9vcmRuMDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgPSAiTkEgKG5ldmVyKSIsICIxIiA9ICJyYXJlbHkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiID0gInNvbWV0aW1lcyAoMS0yIHRpbWVzIGEgd2VlaykiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzIiA9ICJ1c3VhbGx5IGJ1dCBub3QgZXZlcnlkYXkgKDMtNiB0aW1lcyBhIHdlZWspIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNCIgPSAiZXZlcnkgZGF5IiksCiAgICAgICAgIHNsZXBfb3JkbjE0ID0gcmVjb2RlX2ZhY3RvcihzbGVwX29yZG4xNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiA9ICJubyIsICIxIiA9ICJhIGxpdHRsZSIsICIyIiA9ICJhIGxvdCIpLAogICAgICAgICBzbGVwX2N0cnkgPSByZWNvZGVfZmFjdG9yKHNsZXBfY3RyeSwgIjEiID0gIlVTIiwgIjMiID0gIkdoYW5hIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiID0gIlRoYWlsYW5kIiwgIjQiID0gIkNoaW5hIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUiID0gIlZhbnVhdHUiKSwKICAgICAgICAgc2xlcF9kZW1vX3NleCA9IHJlY29kZV9mYWN0b3Ioc2xlcF9kZW1vX3NleCwgIjEiID0gIm0iLCAiMiIgPSAiZiIpLAogICAgICAgICBzbGVwX2RlbW9fdWJydSA9IHJlY29kZV9mYWN0b3Ioc2xlcF9kZW1vX3VicnUsICIxIiA9ICJ1cmJhbiIsICIyIiA9ICJydXJhbCIpLAogICAgICAgICBzbGVwX2RlbW9fYWZmciA9IHJlY29kZV9mYWN0b3Ioc2xlcF9kZW1vX2FmZnIsICIxIiA9ICJubyIsICIwIiA9ICJ5ZXMiKSwKICAgICAgICAgc2xlcF9kZW1vX3R1bmcgPSByZWNvZGVfZmFjdG9yKHNsZXBfZGVtb190dW5nLCAiMCIgPSAibm8iLCAiMSIgPSAieWVzIikpICU+JQogIHNlbGVjdCgtYyhzbGVwX2VudHI6c2xlcF9iYXRjLCBzbGVwX2ZpbGU6c2xlcF93aG9jKSkgJT4lCiAgZGlzdGluY3QoKQpgYGAKCmBgYHtyfQojIGRlYWwgd2l0aCBzbGVlcGluZyAmIHdha2luZyB0aW1lcwojIG5vdCBxdWl0ZSBwZXJmZWN0ISEKZDEgPC0gZDAgJT4lCiAgbXV0YXRlX2F0KHZhcnMoYHNsZXBfb3JkbjEwYSMxXzFfMWAsIGBzbGVwX29yZG4xMGEjMV8yXzFgKSwKICAgICAgICAgICAgZnVucyhnc3ViKCJeMFxcOiIsICIxMlxcOiIsIC4pKSkgJT4lCiAgbXV0YXRlKHNsZXBfZGF0ZXNsZWVwID0gaWZlbHNlKGBzbGVwX29yZG4xMGEjMl8xYCA9PSAiUE0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuY2hhcmFjdGVyKHRvZGF5KCkpLCBhcy5jaGFyYWN0ZXIodG9kYXkoKSArIDEpKSwKICAgICAgICAgc2xlcF9kYXRld2FrZSA9IGFzLmNoYXJhY3Rlcih0b2RheSgpICsgMSksCiAgICAgICAgIHNsZXBfZGF0ZXRpbWVzbGVlcCA9IHBhc3RlKHNsZXBfZGF0ZXNsZWVwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNsZXBfb3JkbjEwYSMxXzFfMWAsIGBzbGVwX29yZG4xMGEjMl8xYCksCiAgICAgICAgIHNsZXBfZGF0ZXRpbWV3YWtlID0gcGFzdGUoc2xlcF9kYXRld2FrZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2xlcF9vcmRuMTBhIzFfMl8xYCwgYHNsZXBfb3JkbjEwYSMyXzJgKSkgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc2xlcF9kYXRldGltZXNsZWVwLCBzbGVwX2RhdGV0aW1ld2FrZSksCiAgICAgICAgICAgIGZ1bnMoaWZlbHNlKGdyZXBsKCJNRCIsIC4pLCBOQSwgLikpKSAlPiUKICBtdXRhdGVfYXQodmFycyhzbGVwX2RhdGV0aW1lc2xlZXAsIHNsZXBfZGF0ZXRpbWV3YWtlKSwKICAgICAgICAgICAgZnVucyhwYXJzZV9kYXRldGltZSguLCBmb3JtYXQgPSAiJVktJW0tJWQgJUk6JU0gJXAiKSkpICU+JQogIG11dGF0ZShzbGVwX2ludGVydmFsID0gaW50ZXJ2YWwoc2xlcF9kYXRldGltZXNsZWVwLCBzbGVwX2RhdGV0aW1ld2FrZSksCiAgICAgICAgIHNsZXBfZHVyYXRpb24gPSBhcy5kdXJhdGlvbihzbGVwX2ludGVydmFsKSwKICAgICAgICAgc2xlcF9kdXJhdGlvbl9udW0gPSBhcy5udW1lcmljKHNsZXBfZHVyYXRpb24sICJob3VycyIpKQpgYGAKCmBgYHtyfQpkIDwtIGQxCmBgYAoKCiMgRGVtb2dyYXBoaWNzCgpgYGB7ciwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgZGlzdGluY3Qoc2xlcF9jdHJ5LCBzbGVwX3N1YmopICU+JQogIGNvdW50KHNsZXBfY3RyeSkKYGBgCgpgYGB7ciwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgZGlzdGluY3Qoc2xlcF9jdHJ5LCBzbGVwX3N1YmosIHNsZXBfZGVtb19zZXgpICU+JQogIGdyb3VwX2J5KHNsZXBfY3RyeSkgJT4lCiAgY291bnQoc2xlcF9kZW1vX3NleCkgJT4lCiAgbXV0YXRlKHByb3AgPSByb3VuZChuL3N1bShuKSwgMikpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzZWxlY3QoLW4pICU+JQogIHNwcmVhZChzbGVwX2RlbW9fc2V4LCBwcm9wKQpgYGAKCkEgY291cGxlIG9mIHRoaW5ncyB0byBub3RlIGhlcmU6IEEgc3Vic3RhbnRpYWwgbWFqb3JpdHkgb2YgcGFydGljaXBhbnRzIGluIEdoYW5hIHdlcmUgZmVtYWxlLCBhbmQgdGhpcyBhbHNvIGFwcGVhcnMgdG8gYmUgdHJ1ZSBpbiBUaGFpbGFuZCBhbmQgVmFudWF0dSAod2hlcmUgYW4gdW51c3VhbCBudW1iZXIgb2YgcGFydGljaXBhbnRzIGFyZSBtaXNzaW5nIGdlbmRlci9zZXggaW5mbykuCgpgYGB7ciwgaW5jbHVkZSA9IFR9CmQwICU+JQogIGRpc3RpbmN0KHNsZXBfY3RyeSwgc2xlcF9zdWJqLCBzbGVwX2RlbW9fYWdlKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIHN1bW1hcmlzZShtZWRpYW4gPSBtZWRpYW4oc2xlcF9kZW1vX2FnZSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgbWVhbiA9IG1lYW4oc2xlcF9kZW1vX2FnZSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgc2QgPSBzZChzbGVwX2RlbW9fYWdlLCBuYS5ybSA9IFQpLAogICAgICAgICAgICBtaW4gPSBtaW4oc2xlcF9kZW1vX2FnZSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgbWF4ID0gbWF4KHNsZXBfZGVtb19hZ2UsIG5hLnJtID0gVCkpICU+JQogIG11dGF0ZV9hdCh2YXJzKG1lZGlhbiwgbWVhbiwgc2QsIG1pbiwgbWF4KSwgZnVucyhyb3VuZCguLCAyKSkpCmBgYAoKCjxQIHN0eWxlPSJwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzIj4KIyBJbmRpdmlkdWFsIHF1ZXN0aW9ucwoKIyMgMS4gV2hlcmUgZG8geW91IHVzdWFsbHkgc2xlZXAgYXQgbmlnaHQ/IChgc2xlcF9vcmRuMDFgKQoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGluY2x1ZGUgPSBUfQpkICU+JQogIG11dGF0ZShzbGVwX29yZG4wMSA9IGNhc2Vfd2hlbihncmVwbCgiLCIsIHNsZXBfb3JkbjAxKSB+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBhbnN3ZXJzIHNlbGVjdGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlcihzbGVwX29yZG4wMSkpLAogICAgICAgICBzbGVwX29yZG4wMSA9IGZhY3RvcihzbGVwX29yZG4wMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygib3duIGJlZHJvb20iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmVkcm9vbSBzaGFyZWQgd2l0aCBvdGhlcnMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tbW9uIHJvb20gKGxpdmluZyBwbHVzIHNsZWVwaW5nKSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3JjaC9vdXRzaWRlIiwgIm5vdCBpbiBob21lIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhcmlhYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiKSkpICU+JQogIGNvdW50KHNsZXBfY3RyeSwgc2xlcF9vcmRuMDEpICU+JQogIGNvbXBsZXRlKHNsZXBfb3JkbjAxLCBuZXN0aW5nKHNsZXBfY3RyeSksIGZpbGwgPSBsaXN0KG4gPSAwKSkgJT4lCiAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICBtdXRhdGUocHJvcCA9IG4vc3VtKG4sIG5hLnJtID0gVCkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfb3JkbjAxLCB5ID0gcHJvcCwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF9ncmlkKGNvbHMgPSB2YXJzKHNsZXBfY3RyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiMS4gV2hlcmUgZG8geW91IHVzdWFsbHkgc2xlZXAgYXQgbmlnaHQ/IChgc2xlcF9vcmRuMDFgKSIsIAogICAgICAgeCA9ICJSZXNwb25zZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBwYXJ0aWNpcGFudHMiKQpgYGAKCgojIyAyLiBXaGF0IGRvIHlvdSB1c3VhbGx5IHNsZWVwIG9uIGF0IG5pZ2h0PyAoYHNsZXBfb3JkbjAyYCkKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBpbmNsdWRlID0gVH0KZCAlPiUKICBtdXRhdGUoc2xlcF9vcmRuMDIgPSBjYXNlX3doZW4oZ3JlcGwoIiwiLCBzbGVwX29yZG4wMikgfiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBhcy5jaGFyYWN0ZXIoc2xlcF9vcmRuMDIpKSwKICAgICAgICAgc2xlcF9vcmRuMDIgPSBmYWN0b3Ioc2xlcF9vcmRuMDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoImJlZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb2ZhLCBkaXZhbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXQsIGdyb3VuZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYW1tb2NrIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiKSkpICU+JQogIGNvdW50KHNsZXBfY3RyeSwgc2xlcF9vcmRuMDIpICU+JQogIGNvbXBsZXRlKHNsZXBfb3JkbjAyLCBuZXN0aW5nKHNsZXBfY3RyeSksIGZpbGwgPSBsaXN0KG4gPSAwKSkgJT4lCiAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICBtdXRhdGUocHJvcCA9IG4vc3VtKG4sIG5hLnJtID0gVCkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfb3JkbjAyLCB5ID0gcHJvcCwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF9ncmlkKGNvbHMgPSB2YXJzKHNsZXBfY3RyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiMi4gV2hhdCBkbyB5b3UgdXN1YWxseSBzbGVlcCBvbiBhdCBuaWdodD8gKGBzbGVwX29yZG4wMmApIiwgCiAgICAgICB4ID0gIlJlc3BvbnNlIiwgeSA9ICJQcm9wb3J0aW9uIG9mIHBhcnRpY2lwYW50cyIpCmBgYAoKCiMjIDMuIERvZXMgYW55b25lIGVsc2Ugc2xlZXAgaW4gdGhlIHNhbWUgYmVkIChvciBtYXQsIGhhbW1vY2ssIGV0Yy4pIHdpdGggeW91PyAoYHNsZXBfb3JkbjAzYCkKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBpbmNsdWRlID0gVH0KZCAlPiUKICBtdXRhdGUoc2xlcF9vcmRuMDMgPSBjYXNlX3doZW4oZ3JlcGwoIiwiLCBzbGVwX29yZG4wMykgfgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBhbnN3ZXJzIHNlbGVjdGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlcihzbGVwX29yZG4wMykpLAogICAgICAgICBzbGVwX29yZG4wMyA9IGZhY3RvcihzbGVwX29yZG4wMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygieWVzIiwgIm5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIpKSkgJT4lCiAgY291bnQoc2xlcF9jdHJ5LCBzbGVwX29yZG4wMykgJT4lCiAgY29tcGxldGUoc2xlcF9vcmRuMDMsIG5lc3Rpbmcoc2xlcF9jdHJ5KSwgZmlsbCA9IGxpc3QobiA9IDApKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIG11dGF0ZShwcm9wID0gbi9zdW0obiwgbmEucm0gPSBUKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9vcmRuMDMsIHkgPSBwcm9wLCBmaWxsID0gc2xlcF9jdHJ5KSkgKwogIGZhY2V0X2dyaWQoY29scyA9IHZhcnMoc2xlcF9jdHJ5KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICIzLiBEb2VzIGFueW9uZSBlbHNlIHNsZWVwIGluIHRoZSBzYW1lIGJlZCAob3IgbWF0LCBoYW1tb2NrLCBldGMuKSB3aXRoIHlvdT9cbihgc2xlcF9vcmRuMDNgKSIsIAogICAgICAgeCA9ICJSZXNwb25zZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBwYXJ0aWNpcGFudHMiKQpgYGAKCgojIyA0LiBJZiB5ZXMsIHdobyBzbGVlcHMgd2l0aCB5b3UgaW4gdGhlIGJlZD8gUGxlYXNlIGNpcmNsZSB0aGUgcGVyc29uKHMpIGZyb20gdGhlIGxpc3QgKGBzbGVwX29yZG4wNGApCgpgYGB7ciwgZmlnLndpZHRoID0gNSwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgbXV0YXRlKHNsZXBfb3JkbjA0ID0gY2FzZV93aGVuKGdyZXBsKCIsIiwgc2xlcF9vcmRuMDQpIH4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBhcy5jaGFyYWN0ZXIoc2xlcF9vcmRuMDQpKSwKICAgICAgICAgc2xlcF9vcmRuMDQgPSBmYWN0b3Ioc2xlcF9vcmRuMDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIm5vYm9keSIsICJzcG91c2UiLCAic2lzdGVyIiwgImJyb3RoZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXVnaHRlciIsICJzb24iLCAibW90aGVyIiwgImZhdGhlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyYW5kcGFyZW50IiwgImdyYW5kY2hpbGQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgcmVsYXRpdmUiLCAibm9uLXJlbGF0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIpKSkgJT4lCiAgY291bnQoc2xlcF9jdHJ5LCBzbGVwX29yZG4wNCkgJT4lCiAgY29tcGxldGUoc2xlcF9vcmRuMDQsIG5lc3Rpbmcoc2xlcF9jdHJ5KSwgZmlsbCA9IGxpc3QobiA9IDApKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIG11dGF0ZShwcm9wID0gbi9zdW0obiwgbmEucm0gPSBUKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9vcmRuMDQsIHkgPSBwcm9wLCBmaWxsID0gc2xlcF9jdHJ5KSkgKwogIGZhY2V0X2dyaWQoY29scyA9IHZhcnMoc2xlcF9jdHJ5KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICI0LiBJZiB5ZXMsIHdobyBzbGVlcHMgd2l0aCB5b3UgaW4gdGhlIGJlZD8gUGxlYXNlIGNpcmNsZSB0aGUgcGVyc29uKHMpIGZyb20gdGhlIGxpc3QgKGBzbGVwX29yZG4wNGApIiwgCiAgICAgICB4ID0gIlJlc3BvbnNlIiwgeSA9ICJQcm9wb3J0aW9uIG9mIHBhcnRpY2lwYW50cyIpCmBgYAoKCiMjIDUuIEJlc2lkZXMgYW55b25lIHdobyBzaGFyZXMgdGhlIGJlZCB3aXRoIHlvdSwgZG9lcyBzb21lb25lIGVsc2Ugc2xlZXAgaW4gdGhlIHNhbWUgcm9vbSB3aXRoIHlvdT8gKGBzbGVwX29yZG4wNWApCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgbXV0YXRlKHNsZXBfb3JkbjA1ID0gY2FzZV93aGVuKGdyZXBsKCIsIiwgc2xlcF9vcmRuMDUpIH4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gYXMuY2hhcmFjdGVyKHNsZXBfb3JkbjA1KSksCiAgICAgICAgIHNsZXBfb3JkbjA1ID0gZmFjdG9yKHNsZXBfb3JkbjA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJubyIsICJ5ZXMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIpKSkgJT4lCiAgY291bnQoc2xlcF9jdHJ5LCBzbGVwX29yZG4wNSkgJT4lCiAgY29tcGxldGUoc2xlcF9vcmRuMDUsIG5lc3Rpbmcoc2xlcF9jdHJ5KSwgZmlsbCA9IGxpc3QobiA9IDApKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIG11dGF0ZShwcm9wID0gbi9zdW0obiwgbmEucm0gPSBUKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9vcmRuMDUsIHkgPSBwcm9wLCBmaWxsID0gc2xlcF9jdHJ5KSkgKwogIGZhY2V0X2dyaWQoY29scyA9IHZhcnMoc2xlcF9jdHJ5KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICI1LiBCZXNpZGVzIGFueW9uZSB3aG8gc2hhcmVzIHRoZSBiZWQgd2l0aCB5b3UsIGRvZXMgc29tZW9uZSBlbHNlIHNsZWVwIGluIHRoZSBzYW1lXG5yb29tIHdpdGggeW91PyAoYHNsZXBfb3JkbjA1YCkiLCAKICAgICAgIHggPSAiUmVzcG9uc2UiLCB5ID0gIlByb3BvcnRpb24gb2YgcGFydGljaXBhbnRzIikKYGBgCgoKIyMgNi4gSWYgeWVzLCB3aG8gZWxzZSBzbGVlcHMgaW4gdGhlIHNhbWUgcm9vbSB3aXRoIHlvdT8gUGxlYXNlIGNpcmNsZSB0aGUgcGVyc29uKHMpIGZyb20gdGhlIGxpc3QgKGBzbGVwX29yZG4wNmApCgpgYGB7ciwgZmlnLndpZHRoID0gNSwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgbXV0YXRlKHNsZXBfb3JkbjA2ID0gY2FzZV93aGVuKGdyZXBsKCIsIiwgc2xlcF9vcmRuMDYpIH4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBhcy5jaGFyYWN0ZXIoc2xlcF9vcmRuMDYpKSwKICAgICAgICAgc2xlcF9vcmRuMDYgPSBmYWN0b3Ioc2xlcF9vcmRuMDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIm5vYm9keSIsICJzcG91c2UiLCAic2lzdGVyIiwgImJyb3RoZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXVnaHRlciIsICJzb24iLCAibW90aGVyIiwgImZhdGhlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyYW5kcGFyZW50IiwgImdyYW5kY2hpbGQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgcmVsYXRpdmUiLCAibm9uLXJlbGF0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIpKSkgJT4lCiAgY291bnQoc2xlcF9jdHJ5LCBzbGVwX29yZG4wNikgJT4lCiAgY29tcGxldGUoc2xlcF9vcmRuMDYsIG5lc3Rpbmcoc2xlcF9jdHJ5KSwgZmlsbCA9IGxpc3QobiA9IDApKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIG11dGF0ZShwcm9wID0gbi9zdW0obiwgbmEucm0gPSBUKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9vcmRuMDYsIHkgPSBwcm9wLCBmaWxsID0gc2xlcF9jdHJ5KSkgKwogIGZhY2V0X2dyaWQoY29scyA9IHZhcnMoc2xlcF9jdHJ5KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICI2LiBJZiB5ZXMsIHdobyBlbHNlIHNsZWVwcyBpbiB0aGUgc2FtZSByb29tIHdpdGggeW91PyBQbGVhc2UgY2lyY2xlIHRoZSBwZXJzb24ocykgZnJvbSB0aGUgbGlzdCAoYHNsZXBfb3JkbjA2YCkiLCAKICAgICAgIHggPSAiUmVzcG9uc2UiLCB5ID0gIlByb3BvcnRpb24gb2YgcGFydGljaXBhbnRzIikKYGBgCgoKIyMgNy4gV2hhdCBkb2VzIHlvdXIgZmFtaWx5IHVzZSB0byBzZWUgYXQgbmlnaHQ/IChgc2xlcF9vcmRuMDdgKQoKYGBge3IsIGZpZy53aWR0aCA9IDUsIGluY2x1ZGUgPSBUfQpkICU+JQogIG11dGF0ZShzbGVwX29yZG4wNyA9IGNhc2Vfd2hlbihncmVwbCgiLCIsIHNsZXBfb3JkbjA3KSB+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBhbnN3ZXJzIHNlbGVjdGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlcihzbGVwX29yZG4wNykpLAogICAgICAgICBzbGVwX29yZG4wNyA9IGZhY3RvcihzbGVwX29yZG4wNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygibm90aGluZywganVzdCB0aGUgbW9vbiBhbmQgc3RhcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaWdodCBmcm9tIHRoZSBjb29raW5nIGZpcmUgb3IgaGVhcnRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FuZGxlcyBvciBzdHJhdyB0b3JjaGVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2lsIG9yIGtlcm9zZW5lIGxhbXAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmF0dGVyeS1kcml2ZW4gbGFtcCBvciBmbGFzaGxpZ2h0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsZWN0cmljIGxpZ2h0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiKSkpICU+JQogIGNvdW50KHNsZXBfY3RyeSwgc2xlcF9vcmRuMDcpICU+JQogIGNvbXBsZXRlKHNsZXBfb3JkbjA3LCBuZXN0aW5nKHNsZXBfY3RyeSksIGZpbGwgPSBsaXN0KG4gPSAwKSkgJT4lCiAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICBtdXRhdGUocHJvcCA9IG4vc3VtKG4sIG5hLnJtID0gVCkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfb3JkbjA3LCB5ID0gcHJvcCwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF9ncmlkKGNvbHMgPSB2YXJzKHNsZXBfY3RyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiNy4gV2hhdCBkb2VzIHlvdXIgZmFtaWx5IHVzZSB0byBzZWUgYXQgbmlnaHQ/IChgc2xlcF9vcmRuMDdgKSIsIAogICAgICAgeCA9ICJSZXNwb25zZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBwYXJ0aWNpcGFudHMiKQpgYGAKCgojIyA4LiBEbyB5b3UgdXN1YWxseSB0YWtlIG5hcHM/IChgc2xlcF9vcmRuMDhgKQoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGluY2x1ZGUgPSBUfQpkICU+JQogIG11dGF0ZShzbGVwX29yZG4wOCA9IGNhc2Vfd2hlbihncmVwbCgiLCIsIHNsZXBfb3JkbjA4KSB+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBhbnN3ZXJzIHNlbGVjdGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlcihzbGVwX29yZG4wOCkpLAogICAgICAgICBzbGVwX29yZG4wOCA9IGZhY3RvcihzbGVwX29yZG4wOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygibm8iLCAieWVzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiKSkpICU+JQogIGNvdW50KHNsZXBfY3RyeSwgc2xlcF9vcmRuMDgpICU+JQogIGNvbXBsZXRlKHNsZXBfb3JkbjA4LCBuZXN0aW5nKHNsZXBfY3RyeSksIGZpbGwgPSBsaXN0KG4gPSAwKSkgJT4lCiAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICBtdXRhdGUocHJvcCA9IG4vc3VtKG4sIG5hLnJtID0gVCkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfb3JkbjA4LCB5ID0gcHJvcCwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF9ncmlkKGNvbHMgPSB2YXJzKHNsZXBfY3RyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiOC4gRG8geW91IHVzdWFsbHkgdGFrZSBuYXBzPyAoYHNsZXBfb3JkbjA4YCkiLCAKICAgICAgIHggPSAiUmVzcG9uc2UiLCB5ID0gIlByb3BvcnRpb24gb2YgcGFydGljaXBhbnRzIikKYGBgCgoKIyMgOS4gSWYgc28sIGhvdyBvZnRlbiBkbyB5b3UgcmVzdCBvciBuYXA/IChgc2xlcF9vcmRuMDlgKQoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGluY2x1ZGUgPSBUfQpkICU+JQogIG11dGF0ZShzbGVwX29yZG4wOSA9IGNhc2Vfd2hlbihncmVwbCgiLCIsIHNsZXBfb3JkbjA5KSB+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBhbnN3ZXJzIHNlbGVjdGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlcihzbGVwX29yZG4wOSkpLAogICAgICAgICBzbGVwX29yZG4wOSA9IGZhY3RvcihzbGVwX29yZG4wOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiTkEgKG5ldmVyKSIsICJyYXJlbHkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21ldGltZXMgKDEtMiB0aW1lcyBhIHdlZWspIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXN1YWxseSBidXQgbm90IGV2ZXJ5ZGF5ICgzLTYgdGltZXMgYSB3ZWVrKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZXJ5IGRheSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGxlIGFuc3dlcnMgc2VsZWN0ZWQiKSkpICU+JQogIGNvdW50KHNsZXBfY3RyeSwgc2xlcF9vcmRuMDkpICU+JQogIGNvbXBsZXRlKHNsZXBfb3JkbjA5LCBuZXN0aW5nKHNsZXBfY3RyeSksIGZpbGwgPSBsaXN0KG4gPSAwKSkgJT4lCiAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICBtdXRhdGUocHJvcCA9IG4vc3VtKG4sIG5hLnJtID0gVCkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfb3JkbjA5LCB5ID0gcHJvcCwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF9ncmlkKGNvbHMgPSB2YXJzKHNsZXBfY3RyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiOS4gSWYgc28sIGhvdyBvZnRlbiBkbyB5b3UgcmVzdCBvciBuYXA/IChgc2xlcF9vcmRuMDlgKSIsIAogICAgICAgeCA9ICJSZXNwb25zZSIsIHkgPSAiUHJvcG9ydGlvbiBvZiBwYXJ0aWNpcGFudHMiKQpgYGAKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBpbmNsdWRlID0gVH0KZCAlPiUKICBkaXN0aW5jdChzbGVwX3N1YmosIHNsZXBfY3RyeSwgc2xlcF9vcmRuMDkpICU+JQogIGZpbHRlcihzbGVwX29yZG4wOSAhPSAiLiIpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfY3RyeSwgeSA9IHNsZXBfb3JkbjA5LCBjb2xvciA9IHNsZXBfY3RyeSkpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMjUsIHdpZHRoID0gMC4yNSwgaGVpZ2h0ID0gMC4yNSkgKwogIGdlb21fcG9pbnRyYW5nZShkYXRhID0gLiAlPiUgCiAgICAgICAgICAgICAgICAgICAgZ3JvdXBfYnkoc2xlcF9jdHJ5KSAlPiUKICAgICAgICAgICAgICAgICAgICBtdXRhdGUoc2xlcF9vcmRuMDkgPSBhcy5udW1lcmljKHNsZXBfb3JkbjA5KSkgJT4lCiAgICAgICAgICAgICAgICAgICAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAic2xlcF9vcmRuMDkiKSAlPiUKICAgICAgICAgICAgICAgICAgICB1bmdyb3VwKCksCiAgICAgICAgICAgICAgICAgIGFlcyh5ID0gbWVhbiwgeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLCAKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siKSArCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogICMgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICI5LiBJZiBzbywgaG93IG9mdGVuIGRvIHlvdSByZXN0IG9yIG5hcD8gKGBzbGVwX29yZG4wOWApIiwKICAgICAgIHN1YnRpdGxlID0gIkVycm9yIGJhcnMgYXJlIDk1JSBib290c3RyYXBwZWQgY29uZmlkZW5jZSBpbnRlcnZhbHMiLAogICAgICAgeCA9ICJTaXRlIiwgeSA9ICJSZXNwb25zZSIpCmBgYAoKIyMgMTAuIFdoZW4gZG8geW91IHR5cGljYWxseSBmYWxsIGFzbGVlcCBldmVyeSBuaWdodCBhbmQgd2FrZSB1cCBldmVyeSBuaWdodD8gKGBzbGVwX29yZG4xMGApCgpgYGB7ciwgZmlnLndpZHRoID0gNSwgaW5jbHVkZSA9IFR9CmQgJT4lCiAgZGlzdGluY3Qoc2xlcF9jdHJ5LCBzbGVwX3N1YmosIHNsZXBfZGF0ZXRpbWVzbGVlcCwgc2xlcF9kYXRldGltZXdha2UpICU+JQogIG11dGF0ZV9hdCh2YXJzKHNsZXBfZGF0ZXRpbWVzbGVlcCwgc2xlcF9kYXRldGltZXdha2UpLAogICAgICAgICAgICBmdW5zKGFzLmNoYXJhY3RlcikpICU+JQogIGdhdGhlcihzbGVlcHdha2UsIHRpbWUsIC1jKHNsZXBfY3RyeSwgc2xlcF9zdWJqKSkgJT4lCiAgbXV0YXRlKHRpbWUgPSBwYXJzZV9kYXRldGltZSh0aW1lKSwKICAgICAgICAgc2xlZXB3YWtlID0gZmFjdG9yKHNsZWVwd2FrZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoInNsZXBfZGF0ZXRpbWVzbGVlcCIsICJzbGVwX2RhdGV0aW1ld2FrZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiZmFsbCBhc2xlZXAiLCAid2FrZSB1cCIpKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gdGltZSwgZmlsbCA9IHNsZXBfY3RyeSwgY29sb3IgPSBzbGVlcHdha2UpKSArCiAgZmFjZXRfd3JhcCh+IHNsZXBfY3RyeSwgbmNvbCA9IDMpICsKICBnZW9tX2RlbnNpdHkocG9zaXRpb24gPSAiaWRlbnRpdHkiLCBhbHBoYSA9IDAuNSwgc2l6ZSA9IDAuOCkgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IHBhc3RlKHRvZGF5KCkgKyAxLCAiMTI6MDAgQU0iKSAlPiUgCiAgICAgICAgICAgICAgIGFzX2RhdGV0aW1lKGZvcm1hdCA9ICIlWS0lbS0lZCAlSTolTSAlcCIpLCAKICAgICAgICAgICAgIGNvbG9yID0gImRhcmtibHVlIiwgbHR5ID0gMikgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IHBhc3RlKHRvZGF5KCkgKyAxLCAiMDg6MDAgQU0iKSAlPiUgCiAgICAgICAgICAgICAgIGFzX2RhdGV0aW1lKGZvcm1hdCA9ICIlWS0lbS0lZCAlSTolTSAlcCIpLCAKICAgICAgICAgICAgIGNvbG9yID0gImRhcmtyZWQiLCBsdHkgPSAyKSArCiAgIyBhbm5vdGF0ZSgidGV4dCIsCiAgIyAgICAgICAgICB4ID0gcGFzdGUodG9kYXkoKSArIDEsICIxOjAwIEFNIikgJT4lCiAgIyAgICAgICAgICAgIGFzX2RhdGV0aW1lKGZvcm1hdCA9ICIlWS0lbS0lZCAlSTolTSAlcCIpLAogICMgICAgICAgICAgeSA9IDAuMDAwMTUsIGxhYmVsID0gIuKGkCBtaWRuaWdodCIsIGhqdXN0ID0gMCkgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJkYXJrYmx1ZSIsICJkYXJrcmVkIiksIGd1aWRlID0gIm5vbmUiKSArCiAgc2NhbGVfeF9kYXRldGltZShkYXRlX2JyZWFrcyA9ICI2IGhvdXJzIiwgZGF0ZV9taW5vcl9icmVha3MgPSAgIjIgaG91cnMiLCAKICAgICAgICAgICAgICAgICAgIGRhdGVfbGFiZWxzID0gIiVJOiVtICVwIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIikgKwogIGxhYnModGl0bGUgPSAiMTAuIFdoZW4gZG8geW91IHR5cGljYWxseSBmYWxsIGFzbGVlcCBldmVyeSBuaWdodCBhbmQgd2FrZSB1cCBldmVyeSBuaWdodD8gKGBzbGVwX29yZG4xMGApIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJOT1RFOiBMb3RzIG9mIG1pc3NpbmcgZGF0YSBoZXJlIVxuRG90dGVkIGxpbmVzIGluZGljYXRlIDEyOjAwIEFNIChtaWRuaWdodCkgYW5kIDg6MDBBTTsgYmx1ZSBvdXRsaW5lIGluZGljYXRlcyB0aW1lIHRvIGZhbGwgYXNsZWVwLCBhbmQgcmVkIGluZGljYXRlcyB0aW1lIHRvIHdha2UgdXAiLAogICAgICAgeCA9ICJSZXNwb25zZSIsIHkgPSAiRGVuc2l0eSAofnByb3BvcnRpb24gb2YgcGFydGljaXBhbnRzKSIsIAogICAgICAgY29sb3IgPSAiU2xlZXAgdnMuIHdha2UiKQpgYGAKCmBgYHtyLCBmaWcud2lkdGggPSA1LCBpbmNsdWRlID0gVH0KZCAlPiUKICBnZ3Bsb3QoYWVzKHggPSBzbGVwX2R1cmF0aW9uX251bSwgZmlsbCA9IHNsZXBfY3RyeSkpICsKICBmYWNldF93cmFwKH4gc2xlcF9jdHJ5LCBuY29sID0gMykgKwogIGdlb21fZGVuc2l0eShwb3NpdGlvbiA9ICJpZGVudGl0eSIsIGFscGhhID0gMC41LCBzaXplID0gMC44KSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gOCwgbHR5ID0gMikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIikgKwogIGxhYnModGl0bGUgPSAiTGVuZ3RoIG9mIHNsZWVwIChkZXJpdmVkIGZyb20gYHNsZXBfb3JkbjEwYCkiLCAKICAgICAgIHN1YnRpdGxlID0gIk5PVEU6IExvdHMgb2YgbWlzc2luZyBkYXRhIGhlcmUhXG5Eb3R0ZWQgbGluZSBpbmRpY2F0ZXMgOCBob3VycyIsCiAgICAgICB4ID0gIkxlbmd0aCBvZiBzbGVlcCAoaG91cnMpIiwgeSA9ICJEZW5zaXR5ICh+cHJvcG9ydGlvbiBvZiBwYXJ0aWNpcGFudHMpIikKYGBgCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDEsIGluY2x1ZGUgPSBUfQpkICU+JQogIGRpc3RpbmN0KHNsZXBfc3Viaiwgc2xlcF9jdHJ5LCBzbGVwX2R1cmF0aW9uX251bSkgJT4lCiAgZmlsdGVyKCFpcy5uYShzbGVwX2R1cmF0aW9uX251bSkpICU+JQogIGdncGxvdChhZXMoeCA9IHNsZXBfY3RyeSwgeSA9IHNsZXBfZHVyYXRpb25fbnVtLCBjb2xvciA9IHNsZXBfY3RyeSkpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSA4LCBsdHkgPSAyKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjI1LCB3aWR0aCA9IDAuMjUsIGhlaWdodCA9IDAuMjUpICsKICBnZW9tX3BvaW50cmFuZ2UoZGF0YSA9IC4gJT4lIAogICAgICAgICAgICAgICAgICAgIGdyb3VwX2J5KHNsZXBfY3RyeSkgJT4lCiAgICAgICAgICAgICAgICAgICAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAic2xlcF9kdXJhdGlvbl9udW0iKSAlPiUKICAgICAgICAgICAgICAgICAgICB1bmdyb3VwKCksCiAgICAgICAgICAgICAgICAgIGFlcyh5ID0gbWVhbiwgeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLCAKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siKSArCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiRGFyazIiLCBndWlkZSA9ICJub25lIikgKwogICMgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICJMZW5ndGggb2Ygc2xlZXAgKGRlcml2ZWQgZnJvbSBgc2xlcF9vcmRuMTBgKSIsCiAgICAgICBzdWJ0aXRsZSA9ICJOT1RFOiBMb3RzIG9mIG1pc3NpbmcgZGF0YSBoZXJlIVxuRXJyb3IgYmFycyBhcmUgOTUlIGJvb3RzdHJhcHBlZCBjb25maWRlbmNlIGludGVydmFscztcbkRvdHRlZCBsaW5lIGluZGljYXRlcyA4IGhvdXJzIiwKICAgICAgIHggPSAiU2l0ZSIsIHkgPSAiTGVuZ3RoIG9mIHNsZWVwIChob3VycykiKQpgYGAKCiMjIDExLiBEb2VzIHRoYXQgdmFyeSBhIGxvdCBmcm9tIG5pZ2h0IHRvIG5pZ2h0PyAoYHNsZXBfb3JkbjExYCkKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBpbmNsdWRlID0gVH0KZCAlPiUKICBtdXRhdGUoc2xlcF9vcmRuMTEgPSBjYXNlX3doZW4oZ3JlcGwoIiwiLCBzbGVwX29yZG4xMSkgfiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBhcy5jaGFyYWN0ZXIoc2xlcF9vcmRuMTEpKSwKICAgICAgICAgc2xlcF9vcmRuMTEgPSBmYWN0b3Ioc2xlcF9vcmRuMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoMTo1LCAibXVsdGlwbGUgYW5zd2VycyBzZWxlY3RlZCIpKSkgJT4lCiAgY291bnQoc2xlcF9jdHJ5LCBzbGVwX29yZG4xMSkgJT4lCiAgY29tcGxldGUoc2xlcF9vcmRuMTEsIG5lc3Rpbmcoc2xlcF9jdHJ5KSwgZmlsbCA9IGxpc3QobiA9IDApKSAlPiUKICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogIG11dGF0ZShwcm9wID0gbi9zdW0obiwgbmEucm0gPSBUKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9vcmRuMTEsIHkgPSBwcm9wLCBmaWxsID0gc2xlcF9jdHJ5KSkgKwogIGZhY2V0X2dyaWQoY29scyA9IHZhcnMoc2xlcF9jdHJ5KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgbGFicyh0aXRsZSA9ICIxMS4gRG9lcyB0aGF0IHZhcnkgYSBsb3QgZnJvbSBuaWdodCB0byBuaWdodD8gRm9yIGV4YW1wbGUsIGRvIHlvdSByZWd1bGFybHkgc2xlZXAgZnJvbSBvbmVcbnRpbWUgKG1heWJlIDEwIHBtKSB0byBhbm90aGVyIHRpbWUgKG1heWJlIDYgYW0pIGVhY2ggbmlnaHQsIG9yIHNvbWV0aW1lcyBkbyB5b3Ugc2xlZXBcbmF0IDEwLCBvdGhlciBuaWdodHMgbWlkbmlnaHQsIHNvbWUgZGF5cyB5b3UgZ2V0IHVwIGF0IDIgYW0sIHNvbWV0aW1lcyBhbmQgNSBhbSxcbnNvbWV0aW1lcyA3IGFtLCBhdCB2ZXJ5IGRpZmZlcmVudCB0aW1lcz8gKGBzbGVwX29yZG4xMWApIiwKICAgICAgIHN1YnRpdGxlID0gIjE6IE5vIHZhcmlhdGlvbiwgNTogVmVyeSB2ZXJ5IHZhcmllZCIsCiAgICAgICB4ID0gIlJlc3BvbnNlIiwgeSA9ICJQcm9wb3J0aW9uIG9mIHBhcnRpY2lwYW50cyIpCmBgYAoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGluY2x1ZGUgPSBUfQpkICU+JQogIGRpc3RpbmN0KHNsZXBfc3Viaiwgc2xlcF9jdHJ5LCBzbGVwX29yZG4xMSkgJT4lCiAgZmlsdGVyKHNsZXBfb3JkbjExICE9ICIuIikgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9jdHJ5LCB5ID0gc2xlcF9vcmRuMTEsIGNvbG9yID0gc2xlcF9jdHJ5KSkgKwogIGdlb21faml0dGVyKGFscGhhID0gMC4yNSwgd2lkdGggPSAwLjI1LCBoZWlnaHQgPSAwLjI1KSArCiAgZ2VvbV9wb2ludHJhbmdlKGRhdGEgPSAuICU+JSAKICAgICAgICAgICAgICAgICAgICBncm91cF9ieShzbGVwX2N0cnkpICU+JQogICAgICAgICAgICAgICAgICAgIG11dGF0ZShzbGVwX29yZG4xMSA9IGFzLm51bWVyaWMoc2xlcF9vcmRuMTEpKSAlPiUKICAgICAgICAgICAgICAgICAgICBtdWx0aV9ib290X3N0YW5kYXJkKGNvbCA9ICJzbGVwX29yZG4xMSIpICU+JQogICAgICAgICAgICAgICAgICAgIHVuZ3JvdXAoKSwKICAgICAgICAgICAgICAgICAgYWVzKHkgPSBtZWFuLCB5bWluID0gY2lfbG93ZXIsIHltYXggPSBjaV91cHBlciksIAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJibGFjayIpICsKICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJEYXJrMiIsIGd1aWRlID0gIm5vbmUiKSArCiAgIyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDYwLCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBsYWJzKHRpdGxlID0gIjExLiBEb2VzIHRoYXQgdmFyeSBhIGxvdCBmcm9tIG5pZ2h0IHRvIG5pZ2h0PyBGb3IgZXhhbXBsZSwgZG8geW91IHJlZ3VsYXJseSBzbGVlcCBmcm9tIG9uZVxudGltZSAobWF5YmUgMTAgcG0pIHRvIGFub3RoZXIgdGltZSAobWF5YmUgNiBhbSkgZWFjaCBuaWdodCwgb3Igc29tZXRpbWVzIGRvIHlvdSBzbGVlcFxuYXQgMTAsIG90aGVyIG5pZ2h0cyBtaWRuaWdodCwgc29tZSBkYXlzIHlvdSBnZXQgdXAgYXQgMiBhbSwgc29tZXRpbWVzIGFuZCA1IGFtLFxuc29tZXRpbWVzIDcgYW0sIGF0IHZlcnkgZGlmZmVyZW50IHRpbWVzPyAoYHNsZXBfb3JkbjExYCkiLAogICAgICAgc3VidGl0bGUgPSAiRXJyb3IgYmFycyBhcmUgOTUlIGJvb3RzdHJhcHBlZCBjb25maWRlbmNlIGludGVydmFscyIsCiAgICAgICB4ID0gIlNpdGUiLCB5ID0gIlJlc3BvbnNlICgxOiBObyB2YXJpYXRpb24sIDU6IFZlcnkgdmVyeSB2YXJpZWQpIikKYGBgCgoKIyMgMTJhLiBSQSBqdWRnbWVudCBmb3IgaG91cnMgc2xlcHQgKGBzbGVwX29yZG4xMmFgLCBkZXJpdmVkIGZyb20gYHNsZXBfb3JkbjEyYCkKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBpbmNsdWRlID0gVH0KZCAlPiUKICBkaXN0aW5jdChzbGVwX3N1YmosIHNsZXBfY3RyeSwgc2xlcF9vcmRuMTJhKSAlPiUKICBmaWx0ZXIoc2xlcF9vcmRuMTJhICE9ICIuIikgJT4lCiAgZmlsdGVyKHNsZXBfb3JkbjEyYSA8PSAyMCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc2xlcF9jdHJ5LCB5ID0gc2xlcF9vcmRuMTJhLCBjb2xvciA9IHNsZXBfY3RyeSkpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSA4LCBsdHkgPSAyKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjI1LCB3aWR0aCA9IDAuMjUsIGhlaWdodCA9IDAuMjUpICsKICBnZW9tX3BvaW50cmFuZ2UoZGF0YSA9IC4gJT4lIAogICAgICAgICAgICAgICAgICAgIGdyb3VwX2J5KHNsZXBfY3RyeSkgJT4lCiAgICAgICAgICAgICAgICAgICAgbXV0YXRlKHNsZXBfb3JkbjEyYSA9IGFzLm51bWVyaWMoc2xlcF9vcmRuMTJhKSkgJT4lCiAgICAgICAgICAgICAgICAgICAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAic2xlcF9vcmRuMTJhIikgJT4lCiAgICAgICAgICAgICAgICAgICAgdW5ncm91cCgpLAogICAgICAgICAgICAgICAgICBhZXMoeSA9IG1lYW4sIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwgCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIikgKwogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIkRhcmsyIiwgZ3VpZGUgPSAibm9uZSIpICsKICAjIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGxhYnModGl0bGUgPSAiMTJhLiBSQSBqdWRnbWVudCBmb3IgaG91cnMgc2xlcHQgKGBzbGVwX29yZG4xMmFgLCBkZXJpdmVkIGZyb20gYHNsZXBfb3JkbjEyYCkiLAogICAgICAgc3VidGl0bGUgPSAiTk9URTogRXhjbHVkZWQgb25lIG91dGxpZXIgKDEgcGFydGljaXBhbnQgaW4gVlQgd2hvIHdhcyBqdWRnZWQgdG8gc2xlZXAgPiAyMCBob3VycztcbkVycm9yIGJhcnMgYXJlIDk1JSBib290c3RyYXBwZWQgY29uZmlkZW5jZSBpbnRlcnZhbHM7IGRvdHRlZCBsaW5lIGluZGljYXRlcyA4IGhvdXJzIiwKICAgICAgIHggPSAiU2l0ZSIsIHkgPSAiTnVtYmVyIG9mIGhvdXJzIHNsZXB0IChSQSBqdWRnbWVudCkiKQpgYGA=